home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
scrbas.arc
/
DEMO.BAS
< prev
next >
Wrap
BASIC Source File
|
1987-01-02
|
3KB
|
125 lines
REM INCLUDE$: 'LISTING.BAS'
DEFINT A-Z
REM $INCLUDE: 'COMDIM.BAS'
DIM ORFLD$(20)
REM $INCLUDE: 'SHARED.BAS'
COMMON SHARED ORFLD$()
REM $INCLUDE: 'COMDEF.BAS'
REM Define screen field headings.
DIS$(10)="05,03,REV,ACCOUNT #"
DIS$(11)="05,14,REV, P.O. # "
DIS$(12)="05,26,REV,SHIP TO #"
DIS$(13)="08,02,REV,ITEM #"
DIS$(14)="08,09,REV, CATALOG # "
DIS$(15)="08,24,REV,VENDOR"
DIS$(16)="08,31,REV, DESCRIPTION/COMMENT "
DIS$(17)="08,58,REV,UM"
DIS$(18)="08,61,REV, ORD QTY "
DIS$(19)="08,71,REV, PRICE "
REM Define screen input fields.
INP$(1)="06,05,NUM,5,NO,ACCT"
INP$(2)="06,14,ALP,10,YES,PO"
INP$(3)="06,29,NUM,3,YES,SHIPTO"
INP$(4)="09,02,NUM!NODEF,6,NO,ITEM"
INP$(5)="09,09,ALP,14,NO,CAT"
INP$(6)="09,24,ALP,6,NO,VEND"
INP$(7)="09,31,ALP,26,YES,DESC"
INP$(8)="09,58,ALP!FIX,2,YES,UM"
INP$(9)="09,61,NUM!DEC,9,NO,QTY"
INP$(10)="09,71,NUM!DEC,9,YES,PRICE"
REM Display field headings.
HEADS$="10,11,12,13,14,15,16,17,18,19"
CALL DISHEADS (HEADS$)
EDITMODE=NO
ADD.HEADER:
EXITSUB=NO
REM Display function key definitions.
FUNC$=",,,Exit"
CALL FUNCTIONS (FUNC$)
ADD.HEADER.LOOP:
CLRF$="1,2,3"
INPS$="1,2,3"
FLDS$="1,2,3"
VOID$="6,5,31"
CALL GETFIELDS (CLRF$,INPS$,FLDS$,VOID$)
IF EXITSUB = YES THEN END
IF KY = ESC THEN GOTO ADD.HEADER.LOOP
REM Display function key definitions.
FUNC$=",,,End order"
CALL FUNCTIONS (FUNC$)
ADD.DETAIL:
CLRF$="4,5,6,7,8,9,10"
INPS$="4,5,6,7,8,9,10"
FLDS$="4,5,6,7,8,9,10"
VOID$="9,2,79"
CALL GETFIELDS (CLRF$,INPS$,FLDS$,VOID$)
IF EXITSUB = YES THEN GOTO ADD.HEADER
IF KY = ESC THEN GOTO ADD.DETAIL
GOTO ADD.DETAIL
SUB GETFIELDS (CLRF$,INPS$,FLDS$,VOID$) STATIC
EXITSUB=NO
IF CLRF$<>"" THEN CALL CLEARFIELDS (CLRF$)
CALL LODWK1 (INPS$,I)
CALL LODWK2 (FLDS$,F)
IF I > F THEN N=WRK1%(I) : I=I-1 ELSE N=1
WHILE N<=I
F$=ORFLD$(WRK2%(N))
CALL ACCEPT (INP$((WRK1%(N))),F$)
IF KY = F4 THEN EXITSUB=YES : EXIT SUB
IF KY = F5 THEN DATSW=YES
IF KY = CTRL.LF THEN N=N+(N>1)
IF KY = CTRL.RT THEN N=N-(N<I)
IF KY = ESC AND VOID$<>"" THEN EN=106 : CALL DISERR (EN,ER$) : CALL CLRLIN (VOID$) : EXIT SUB
IF KY = 0 THEN LSET ORFLD$(WRK2%(N)) = F$ : N=N+1
WEND
END SUB
SUB CLRLIN (LIN$) STATIC
CALL LODWK2 (LIN$,F)
LOCATE WRK2%(1),WRK2%(2) : COLOR 7,0 : PRINT SPC((WRK2%(3)-WRK2%(2))+1);
END SUB
SUB CLEARFIELDS (FLDS$) STATIC
CALL LODWK2 (FLDS$,F)
FOR N = 1 TO F
LSET ORFLD$(WRK2%(N))=""
NEXT N
END SUB
SUB DISHEADS (HEADS$) STATIC
CALL LODWK1 (HEADS$,I)
BUMP=0
N=1
WHILE N<=I
CALL DISPLAY (DIS$((WRK1%(N))),NULL$,BUMP)
N=N+1
WEND
END SUB